package com.nti56.springboot.model;

import com.nti56.springboot.utils.TreeNodeUtil;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class Organization  extends TreeNode {
    /**
     * 主键
     */
    private String orgId;
    
    /**
     * 父节点
     */
    private String parentId;
    
    public String getParentId() {
		return parentId;
	}

	public void setParentId(String parentId) {
		this.parentId = parentId;
	}

	/**
     * 行政组织编码
     */
    private String deptCode;

    /**
     * 行政组织简称
     */
    private String parentCode;

    /**
     * 行政组织名称
     */
    private String deptName;

    /**
     * 行政组织简称
     */
    private String deptAlias;

    /**
     * 组织类型
     */
    private String deptType;

    /**
     * 行政组织路径（20420000#20420001#204200010099）
     */
    private String deptPath;

    /**
     * 行政组织层级
     */
    private String deptLevel;

    /**
     * 行政组织行政层级
     */
    private String orglevel;
    
    /**
     * 排序
     */
    private String sortCode;
    
    public String getSortCode() {
		return sortCode;
	}

	public void setSortCode(String sortCode) {
		this.sortCode = sortCode;
	}

	/**
     * 主键
     * @return ORG_ID 主键
     */
    public String getOrgId() {
        return orgId;
    }

    /**
     * 主键
     * @param orgId 主键
     */
    public void setOrgId(String orgId) {
        this.orgId = orgId == null ? null : orgId.trim();
    }

    /**
     * 行政组织编码
     * @return DEPT_CODE 行政组织编码
     */
    public String getDeptCode() {
        return deptCode;
    }

    /**
     * 行政组织编码
     * @param deptCode 行政组织编码
     */
    public void setDeptCode(String deptCode) {
        this.deptCode = deptCode == null ? null : deptCode.trim();
    }

    /**
     * 行政组织简称
     * @return PARENT_CODE 行政组织简称
     */
    public String getParentCode() {
        return parentCode;
    }

    /**
     * 行政组织简称
     * @param parentCode 行政组织简称
     */
    public void setParentCode(String parentCode) {
        this.parentCode = parentCode == null ? null : parentCode.trim();
    }

    /**
     * 行政组织名称
     * @return DEPT_NAME 行政组织名称
     */
    public String getDeptName() {
        return deptName;
    }

    /**
     * 行政组织名称
     * @param deptName 行政组织名称
     */
    public void setDeptName(String deptName) {
        this.deptName = deptName == null ? null : deptName.trim();
    }

    /**
     * 行政组织简称
     * @return DEPT_ALIAS 行政组织简称
     */
    public String getDeptAlias() {
        return deptAlias;
    }

    /**
     * 行政组织简称
     * @param deptAlias 行政组织简称
     */
    public void setDeptAlias(String deptAlias) {
        this.deptAlias = deptAlias == null ? null : deptAlias.trim();
    }

    /**
     * 组织类型
     * @return DEPT_TYPE 组织类型
     */
    public String getDeptType() {
        return deptType;
    }

    /**
     * 组织类型
     * @param deptType 组织类型
     */
    public void setDeptType(String deptType) {
        this.deptType = deptType == null ? null : deptType.trim();
    }

    /**
     * 行政组织路径（20420000#20420001#204200010099）
     * @return DEPT_PATH 行政组织路径（20420000#20420001#204200010099）
     */
    public String getDeptPath() {
        return deptPath;
    }

    /**
     * 行政组织路径（20420000#20420001#204200010099）
     * @param deptPath 行政组织路径（20420000#20420001#204200010099）
     */
    public void setDeptPath(String deptPath) {
        this.deptPath = deptPath == null ? null : deptPath.trim();
    }

    /**
     * 行政组织层级
     * @return DEPT_LEVEL 行政组织层级
     */
    public String getDeptLevel() {
        return deptLevel;
    }

    /**
     * 行政组织层级
     * @param deptLevel 行政组织层级
     */
    public void setDeptLevel(String deptLevel) {
        this.deptLevel = deptLevel == null ? null : deptLevel.trim();
    }

    /**
     * 行政组织行政层级
     * @return ORGLEVEL 行政组织行政层级
     */
    public String getOrglevel() {
        return orglevel;
    }

    /**
     * 行政组织行政层级
     * @param orglevel 行政组织行政层级
     */
    public void setOrglevel(String orglevel) {
        this.orglevel = orglevel == null ? null : orglevel.trim();
    }
    
    
    public static List<TreeNode> orgList2SimpleNodeList(List<Organization> orgList){
		List<TreeNode> nodeList = new ArrayList<TreeNode>();
		for (Organization org : orgList) {
			TreeNode tree = new TreeNode();
			tree.setId(org.getOrgId());
			tree.setpId(org.getParentId());
			tree.setText(org.getDeptName());
			tree.setChecked(org.isChecked());
			tree.setState(org.getState());
			tree.setChildren(org.getChildren());
			//设置树控件attributes属性的数据				
			Map<String, Object> attributes = TreeNodeUtil.getAttributes(org);
            tree.setAttributes(attributes);				
			nodeList.add(tree);
		}
		return nodeList;
	}
}